package com.itcast.dao;

import com.itcast.health.pojo.Menu;
import com.itcast.health.pojo.Permission;
import com.itcast.health.pojo.Role;
import org.apache.ibatis.annotations.Param;
import java.util.Set;
import java.util.List;

public interface RoleMapper {
    /*添加角色*/
    void add(Role role);
    /*添加角色和权限关系*/
    void addRoleWithPermission(@Param("id") Integer id, @Param("id1") Integer id1);
    /*查询所有权限*/
    List<Permission> findAllPermission();
    /*查询所有菜单*/
    List<Menu> findAllMenu();
    /*添加角色和菜单关系*/
    void addRoleWithMenu(@Param("id") Integer id, @Param("menuId") Integer menuId);
    /*分页查询*/
    List<Role> findPage(@Param("queryString") String queryString);
    /*通过id查询角色*/
    Role findById(@Param("id") Integer id);
    /*被选中的权限回显*/
    List<Integer> findPermissionHasChosed(@Param("id") Integer id);
    /*被选中的菜单回显*/
    List<Integer> findMenuHasChosed(@Param("id") Integer id);
    /*通过id删除角色-权限关系*/
    void deleteRPById(@Param("id") Integer id);
    /*通过id删除角色-菜单关系*/
    void deleteRMById(@Param("id") Integer id);
    /*编辑角色*/
    void edit(Role role);
    /*通过id删除角色*/
    void deleteById(@Param("id") Integer id);
    /*查询用户和角色的关系*/
    Integer findUserWithRoleId(@Param("id") Integer id);


    //通过用户id查询角色
    Set<Role> findRoleByUserid(@Param("userId") Integer userId);
}
